Method and apparatus for transferring signals in a wireless communication system

ABSTRACT

Data is transferred in a wireless communication system, such as a wireless spread spectrum communication system. A plurality of transmitting antennas are provided. Data is encoded to produce a plurality of data streams for each of the plurality of codes. The plurality of data streams are spread with the plurality of spreading codes, and for each transmitting antenna, one of the spread data streams of each code together is combined to produce a spread data vector. Each transmitting antenna transmits its spread data vector. The transmitted spread data vectors are received by each of a plurality of receiving antennas as a received version, and the data is recovered using the received versions.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 10/305,533, filed Nov. 27, 2002 which claims priority from U.S. provisional application No. 60/334,246, filed Nov. 29, 2001, both of which are incorporated herein by reference as if fully set forth.

FIELD OF INVENTION

This invention relates generally to wireless communication systems. In particular, the invention relates to transferring signals using antenna arrays.

BACKGROUND

A multiple input multiple output (MIMO) system is described in FIG. 1. Multiple transmission and/or reception antennas 12 ₁ to 12 _(M) (12), 16 ₁ to 16 _(N) (16) are used to transfer the communication. Each antenna 12, 16 is spatially separated from the other antennas 12, 16. A transmitter 10 using its antenna array 12 transmits a communication to a receiver 18 through a wireless air interface 18. The receiver 18 receives the communication using its antenna array 16. Using both multiple transmission and reception antennas 12, 16 is referred to as multiple input multiple output (MIMO) processing.

Typically, MIMO processing employs multiple antennas at both the base station transmitter and user equipment receiver. While the deployment of base station antenna arrays is already commonly used in wireless communication systems, the simultaneous deployment of base station and user equipment arrays enable significant increases in capacity and data rates by opening up multiple signaling dimensions.

Available MIMO algorithms address a single-path fading channels. However, wireless communication systems are characterized by multipath fading channels. Algorithms that are designed for single-path fading channels, typically exhibit severe degradation in presence of multipath.

Accordingly, it is desirable to have other MIMO systems.

SUMMARY

Data is transferred in a wireless communication system, such as a wireless spread spectrum communication system. A plurality of transmitting antennas are provided. Data is encoded to produce a plurality of data streams for each of the plurality of codes. The plurality of data streams are spread with the plurality of spreading codes, and for each transmitting antenna, one of the spread data streams of each code together is combined to produce a spread data vector. Each transmitting antenna transmits its spread data vector. The transmitted spread data vectors are received by each of a plurality of receiving antennas as a received version, and the data is recovered using the received versions.

BRIEF DESCRIPTION OF THE DRAWING(S)

FIG. 1 is an illustration of a transmitter and a receiver using multiple antennas.

FIG. 2 is a simplified block diagram of a preferred MIMO transmitter and receiver.

FIG. 3A is an embodiment of a MIMO channel equalization device.

FIG. 3B is a flow chart of a MIMO channel equalization embodiment.

FIG. 4A is an alternate embodiment of a MIMO channel equalization device.

FIG. 4B is a flow chart of a MIMO channel equalization alternate embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

FIG. 2 is a simplified block diagram of a multiple input multiple output (MIMO) transmitter and receiver system. The transmitter 20 can be used in a user equipment, a base station or both and the receiver 22 may be used in a base station, a user equipment or both. The MIMO system preferably uses a code division multiple access (CDMA) air interface as shown in FIG. 2, such as a frequency division duplex (FDD)/CDMA, time division duplex (TDD)/CDMA or time division synchronous code division multiple access (TD-SCDMA) air interface, although other air interfaces may be used.

A data vector d is to be transmitted through the wireless air interface by the transmitter 20. The transmitter 20 has M antennas 34 ₁ to 34 _(M) (34) in the antenna array. If transmission spatial diversity is not used, M is one, (a single antenna). The antennas 34 are spatially separated so that a low correlation between their received signals is obtained. For use at a base station transmitter having an angle spread in the range of 1 to 10 degrees, the antenna separation is preferably several wavelengths, such as four wavelengths. For use at a UE receiver, since the angle spread tends to be large, a smaller separation may be used, such as half a wavelength. Based on the implementation, the spatial separations may have other values.

For a preferred implementation of transferring a multicode transmission as illustrated in FIG. 2, the data vector d to be transmitted by the M antennas 34 is encoded by a multicode vector encoder 26. For each of the Q spreading codes C₁ to C_(Q), the data is split into M separate data streams d_(1,1) to d_(M,Q) prior to spreading. The total number of produced data streams is M·Q. To illustrate for C₁, data streams d_(1,1) to d_(m,1) are produced. Each of the M streams is associated with an antenna 34.

For each code, the data streams are spread by their code using a corresponding spreading device 28 ₁ to 28 _(Q) (28), such as a mixer. The spread data streams associated with the same antenna 34 are input into a combiner 30 ₁ to 30 _(M) (30), such as an adder, associated with that antenna 34 of the M antennas 34, producing M spread data vectors, s ₁ to s _(M). Each combined spread data vector, s ₁ to s _(M), is modulated to radio frequency by a modulator 32 ₁ to 32 _(M) (32) and radiated by its associated antenna 34 through the wireless air interface 24.

The preferred multicode receiver implementation as shown in FIG. 2 is for use when all of the multicode transmissions experience the same channel response with respect to a transmission and reception antenna pair. This typically occurs in the downlink. Alternately in the uplink, the receiver 22 of FIG. 2 can be used to process a single user's transmissions, when multiple users are transmitting. The other user transmissions are treated as noise.

At the receiver 22, each transmission antenna's radiated signal is received by each of the N reception antennas 36 ₁ to 36 _(N), as a combined received signal. If reception spatial diversity is not used, N is one, (a single antenna). N is preferably equal to or greater than M. Each received antenna's signal is demodulated to baseband by a demodulator 38 ₁ to 38 _(N) (38). Each demodulated signal is sampled, such as at the chip rate or a multiple of the chip rate, by a sampling device 40 ₁ to 40 _(N) (40), to produce a received vector for each antenna 36, r ₁ to r _(N). The combined received vector r comprises r ₁ to r _(N).

The combined received vector r is input into a MIMO channel equalization device 44. A training sequence signal r′ is input into a channel estimation device 44. The channel estimation device 42 estimates the channel response for each reception and transmission antenna combination. For an i^(th) receiving antenna 36 and a j^(th) transmitting antenna 34, the channel response as a k^(th) instant in time is h_(ij)(k). The overall channel response for all antenna combinations at the k^(th) instant of time is per Equation 1A. $\begin{matrix} {{H(k)} = \begin{bmatrix} {h_{1,1}(k)} & \cdots & {h_{1,M}(k)} \\ \vdots & \vdots & \vdots \\ {h_{N,1}(k)} & \cdots & {h_{N,M}(k)} \end{bmatrix}} & {{Equation}\quad 1A} \end{matrix}$

The overall channel response is per Equation 1B. $\begin{matrix} {H = \begin{bmatrix} {H(0)} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {H(1)} & {H(0)} & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {H(2)} & {H(1)} & {H(0)} & 0 & 0 & 0 & 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {H\left( {L - 1} \right)} & {H\left( {L - 2} \right)} & {H\left( {L - 3} \right)} & \cdots & \cdots & {H(0)} & 0 & \cdots & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ 0 & 0 & \cdots & 0 & {H\left( {L - 1} \right)} & \cdots & \cdots & \cdots & {H(0)} \\ 0 & 0 & 0 & \cdots & 0 & {H\left( {L - 1} \right)} & \cdots & \cdots & {H(1)} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ 0 & 0 & 0 & 0 & 0 & 0 & \cdots & 0 & {H\left( {L - 1} \right)} \end{bmatrix}} & {{Equation}\quad 1B} \end{matrix}$

The overall channel response H is passed to the MIMO channel equalization device 44. The MIMO channel equalization device 44 uses the channel response matrix H and equalizes the received vector r to compensate for the channel distortion experienced through the wireless air interface 24, producing a spread data vector s. The spread data vector s is reordered by a spread vector reordering device 46 so that each transmitting antenna's spread data vector s ₁ to s _(M) is recovered. Each transmitting antenna's spread data vector s ₁ to s _(M) is despread by a despreading device 48 using the spreading codes, C₁ to C_(Q), to estimate data for each of the M encoded data streams for each antenna, d _(1,1) to d _(M,Q). A despread data stream decoder 50 combines the data streams d _(1,1) to d _(M,Q) to recover the original data vector d.

Each communication transferred by a particular transmission/reception antenna combination experiences a different multi-path environment than the other transmission/reception antenna combinations, due to the spatial diversity. By processing the received multi-path components of all of the reception antennas 36 ₁ to 36 _(N), the capacity and maximum data rate of the system is significantly increased.

FIG. 3A is an embodiment of a MIMO channel equalization device 44 and FIG. 3B is a flow chart of a MIMO channel equalization embodiment. Other embodiments for a MIMO channel equalization device, such as Cholesky or approximate Cholesky decomposition, can also be used. The received samples of the channel impulse responses for each antenna pair are per Equation 2. h _(ij)(k), where k=0, . . . ,L−1  Equation 2

i is the i^(th) receiving antenna. j is the j^(th) transmitting antenna. k is the k^(th) sample of the impulse response of length L. The channel impulse response of all reception and transmission antenna pairings for the k^(th) sample is per Equation 3. $\begin{matrix} {{H(k)} = \begin{bmatrix} {h_{1,1}(k)} & \cdots & {h_{1,M}(k)} \\ \vdots & \vdots & \vdots \\ {h_{N,1}(k)} & \cdots & {h_{N,M}(k)} \end{bmatrix}} & {{Equation}\quad 3} \end{matrix}$

The transmitted spread data vector s has N_(s)·M dimension vectors s(k). N_(s) is the number of transmitted data symbols. The overall received vector r has N_(s)+L−2 received vectors of dimension N and is per Equation 4. $\begin{matrix} {\begin{bmatrix} {\underset{\_}{r}(0)} \\ {\underset{\_}{r}(1)} \\ {\underset{\_}{r}(2)} \\ \vdots \\ {\underset{\_}{r}\left( {N_{s} + L - 2} \right)} \end{bmatrix} = {{\begin{bmatrix} {H(0)} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {H(1)} & {H(0)} & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {H(2)} & {H(1)} & {H(0)} & 0 & 0 & 0 & 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {H\left( {L - 1} \right)} & {H\left( {L - 2} \right)} & {H\left( {L - 3} \right)} & \cdots & \cdots & {H(0)} & 0 & \cdots & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ 0 & 0 & \cdots & 0 & {H\left( {L - 1} \right)} & \cdots & \cdots & \cdots & {H(0)} \\ 0 & 0 & 0 & \cdots & 0 & {H\left( {L - 1} \right)} & \cdots & \cdots & {H(1)} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ 0 & 0 & 0 & 0 & 0 & 0 & \cdots & 0 & {H\left( {L - 1} \right)} \end{bmatrix}\begin{bmatrix} {\underset{\_}{s}(0)} \\ {\underset{\_}{s}(1)} \\ {\underset{\_}{s}(2)} \\ \vdots \\ {\underset{\_}{s}\left( {L - 1} \right)} \\ \vdots \\ {\underset{\_}{s}\left( {N_{s} - 1} \right)} \end{bmatrix}} + \underset{\_}{w}}} & {{Equation}\quad 4} \end{matrix}$

w is the noise vector. Alternately, Equation 4 can be written as Equation 5. r=Hs+w   Equation 5 The r and w vectors have a length of (N_(s)+L−1)·N. The s vector has a length of N_(s)M and H is a (N_(s)+L−1)·N by N_(s)·M matrix.

As shown in Equation 4, the H matrix is approximately block circulant. To make the H matrix more block circulant, L−1 block columns are added to the H matrix, to produce an extended H matrix, and a corresponding number of zeros added to the s vector, to produce an extended s vector. The L−1 column blocks are added in accordance with the H matrice's block circulant structure. After the extending of the H matrix and the s vector, the extended H matrix has a dimension of (N_(s)+L−1)·N by (N_(s)+L−1)·M and s has a length of (N_(s)+L−1)·M.

For shorthand, N_(s)+L−1 is represented by D, so that D=N_(s)+L−1. The extended H matrix of size DN by DM with blocks of size N by M is decomposed per Equation 6. H _((N,M)) =F _((N)) ⁻¹Λ_((N,M)) F _((M))  Equation 6 F_((N)) is a block Fourier transform with a block size of N by N and F_((M)) is a block Fourier transform with a block size of M by M. F_((N)) is per Equation 7. F_((N))=F⊕I_(N)  Equation 7 ⊕ is the Kronecker product operation and I_(N) is an N by N identity matrix.

F_((M)) is per Equation 8. F_((M))=F⊕I_(M)  Equation 8 I_(M) is an M by M identity matrix.

The block-diagonal matrix Λ_((N,M)) is, preferably, a block-Fourier transform of the first block-column of H, although another column may be used, (after being permuted), step 84. A block-Fourier transform device 62 produces Λ_((N,M)) by taking a block-transform of a column of H. Λ_((N,M)) is preferably derived from Equation 9. diag _((N,M))(Λ_((N,M)))=F _((N)) H _((N,M))(:,1:M)  Equation 9 diag_((N,M))(Λ_((N,M))) is the block diagonal of Λ_((N,M)). (:,1: M) represents the first block column of width M. By using a single block column of H to derive Λ_((N,M)), the H matrix is approximated as being a block circulant matrix.

By substituting Equation 6 into Equation 2, Equation 10 results. Λ_((NM))F_((M)) s=F_((N)) r  Equation 10

To solve for s, initially, a vector x is determined per Equation 11, step 86. x=F_((N)) r  Equation 11 x is preferably determined by an N non-block discrete Fourier transform of length D. A block-Fourier transform device 64 produces x by taking the block-transform of r.

Subsequently, a vector y is determined per Equation 12, step 88. Λ_((N,M)) y=x  Equation 12 A y determining device 66 produces y.

Since Λ_((N,M)) is a block diagonal matrix, y is preferably determined on a block-by-block basis by solving D systems of equations of smaller size, such as per Equation 13. Λ_((N,M)) ^(i) y _(i)=x _(i) i=1, . . . D  Equation 13 Λ_((N,M)) ^(i) is the i^(th) block of Λ_((N,M)). y _(i) is the i^(th) M by 1 sub-vector of y. x _(i) is the i^(th) N by 1 sub-vector of x.

Since Λ_((N,M)) ^(i) is unstructured, one approach to solve Equation 13 is to use Cholesky decomposition of Equation 14 and forward and backward substitution, although other approaches may be used. (Λ_((N,M)) ^(i))^(H)Λ_((N,M)) ^(i)  Equation 14

If the number of receiving antennas N is equal to the number of transmitting antennas, Λ_((N,M)) ^(i) is a square matrix and y can be determined by inverting Λ_((N,M)) ^(i). For small values of N, a matrix inversion may be more efficient than performing a Cholesky decomposition.

The s vector is determined per Equation 15, step 90. s=F _((M)) ⁻¹ y   Equation 15 A block inverse Fourier transform device 68 is used to produce s. One approach to determining s using Equation 15 is by performing M non-block inverse discrete Fourier transforms of dimension D, although other approaches may be used.

FIG. 4A is an alternate embodiment of a MIMO channel equalization device 44B and FIG. 4B is a flow chart of the MIMO channel equalization alternate embodiment. To determine s, both sides of Equation 2 are multiplied by H^(H), per Equation 16. H ^(H) r=Rs+H ^(H) w=Rs+n   Equation 16 (·)^(H) is the conjugate transpose operation. n is the equalized noise vector. R is the channel cross correlation matrix and is determined by an R determination device 70 using the H matrix, step 92. R for a zero forcing solution is per Equation 17. R=H^(H)H  Equation 17

For a minimum mean square errors (MMSE) solution, R is per Equation 18. R=H ^(H) H +σ ² I  Equation 18 σ² is the variance of the noise vector w and I is an identity matrix.

The channel cross correlation matrix R has a structure per Equation 19. $\begin{matrix} {R = \begin{bmatrix} R_{0} & R_{1} & R_{2} & R_{3} & \cdots & R_{L - 1} & 0 & 0 & 0 & 0 & 0 & 0 \\ R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} & \cdots & R_{L - 1} & 0 & 0 & 0 & 0 & 0 \\ R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} & \cdots & R_{L - 1} & 0 & 0 & 0 & 0 \\ R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} & \cdots & R_{L - 1} & 0 & 0 & 0 \\ \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} & \cdots & R_{L - 1} & 0 & 0 \\ R_{L - 1}^{H} & \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} & \cdots & R_{L - 1} & 0 \\ 0 & R_{L - 1}^{H} & \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} & \cdots & R_{L - 1} \\ 0 & 0 & R_{L - 1}^{H} & \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} & \cdots \\ 0 & 0 & 0 & R_{L - 1}^{H} & \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} & R_{3} \\ 0 & 0 & 0 & 0 & R_{L - 1}^{H} & \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} & R_{2} \\ 0 & 0 & 0 & 0 & 0 & R_{L - 1}^{H} & \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} & R_{1} \\ 0 & 0 & 0 & 0 & 0 & 0 & R_{L - 1}^{H} & \vdots & R_{3}^{H} & R_{2}^{H} & R_{1}^{H} & R_{0} \end{bmatrix}} & {{Equation}\quad 19} \end{matrix}$

After the adding of L−1 columns to the H matrix as previously described, a close to block circulant approximation of the R matrix can be derived, referred to as the extended R matrix. The dimensions of the extended R matrix are DM by DM.

Using the extended R matrix, Equation 20 is used to determine s. H^(H) r=Rs  Equation 20

By approximating R and H^(H) as block circulant matrices, R is decomposed per Equation 21. R=F _((M)) ⁻¹Λ_((M,M)) ^(R) F _((M))  Equation 21 Λ_((M,M)) ^(R) is preferably derived from a first block column of R per Equation 22, although another column may be used, (after being permutated), step 94. diag _((M,M))(Λ_((M,M)) ^(R))=F_((M))R_((M,M))(:,1:M)  Equation 22 diag_((M,M))(Λ_((M,M)) ^(R)) is the block diagonal of Λ_((M,M)) ^(R). A block-Fourier transform device 72 is used to determine ΛR MM) by taking a block-Fourier transform of a block column of R.

H^(H) is decomposed per Equation 23. H ^(H) =F _((M)) ⁻¹Λ_((M,N)) ^(H) F _((N))  Equation 23

79 _((M,N)) ^(H) is preferably determined using the first block column of H^(H) per Equation 24, although another block column may be used, (after being permuted), step 96. diag _((M,N))(Λ_((M,N)) ^(H))=F _((M)) H _((M,N)) ^(H)(:,1:N)  Equation 24 diag_((M,N))(Λ(M,N)^(H)) is the block diagonal of Λ_((M,N)) ^(H).

A block-Fourier transform device 74 is used to determine Λ_((M,N)) ^(H) by taking a block-Fourier transform of a block-column of H^(H).

By substituting 21 and 23 into 20, Equation 25 results. Λ_((M,N)) ^(H)F_((N)r=Λ) _((M,M)) ^(R)F_((M)) s  Equation 25

Solving for s, Equation 26 results. s=F _((M)) ⁻¹(Λ_((M,M)) ^(R))⁻¹Λ_((M,N)) ^(H) F _((N)) r   Equation 26

Determining s is preferably performed in a four step process. Initially, x is determined per Equation 27, step 98. x=F_((N)) r  Equation 27 The block-Fourier transform is preferably performed by an N non-block Fourier transform of length D. A block-Fourier transform device 76 takes a block-Fourier transform of r to determine x.

In a second step, y is determined per Equation 28, step 100. y=Λ_((M,N)) ^(H) x  Equation 28 A y determining device 78 uses Λ_((M,N)) ^(H) and x to determine y.

In a third step, z is determined per Equation 29, step 102. Λ_((M,M)) ^(R) z=y  Equation 29 A z determining device 80 determines z using Λ_((M,M)) ^(R) and y.

Preferably, since Λ_((M,M)) ^(R) is a block diagonal matrix, Equation 29 is solved using D systems of smaller size per Equation 30. (Λ_((M,M)) ^(R))^(i) z _(i) =y i=1, . . . , D  Equation 30

(Λ_((M,M)) ^(R))^(i) is the i^(th) block of Λ_((M,M)) ^(R). z _(i) is the i^(th) M by 1 sub-vector of z. y _(i) is the i^(th) M by 1 sub-vector of y.

Since (Λ_((M,M)) ^(R))^(i) is unstructured, one approach to determine (Λ_((M,M)) ^(R))^(i) is to use Cholesky decomposition of ((Λ_((N,M)) ^(R))^(i))^(H)(Λ_((M,M)) ^(R))^(i) and forward and backward substitution, although other approaches may be used.

In the fourth step, s is determined per Equation 31 by performing an M non-block inverse discrete Fourier transform of dimension D, step 104. s=F _((M)) ⁻¹ z   Equation 31 A block-inverse Fourier transform device 82 is used to take an inverse block transform of z to produce s.

To recover data from the estimated spread data vector s using either embodiment, the spread data vector s is separated into its M transmitted data streams, s _(m) where m=1, . . . ,M, by the spread vector reordering device. The spread data vector s is the result of concatenating the data stream vectors s _(m) and reordering by grouping the same chip intervals together, as per Equation 32. $\begin{matrix} {\underset{\_}{s} = \begin{bmatrix} s_{1,1} \\ \vdots \\ s_{M,1} \\ \vdots \\ s_{1,N_{c}} \\ \vdots \\ s_{M,N_{c}} \end{bmatrix}} & {{Equation}\quad 32} \end{matrix}$ s _(m,j) demotes the j^(th) chip interval of the m^(th) data stream.

To recover each spread data vector stream s _(m), the chips of the estimated spread data vector s are reordered per Equation 33, producing s _(REORDERED). $\begin{matrix} {{\underset{\_}{s}}_{REODERED} = {\begin{bmatrix} s_{1,1} \\ \vdots \\ s_{1,N_{C}} \\ \vdots \\ s_{M,1} \\ \vdots \\ s_{M,N_{c}} \end{bmatrix} = \begin{bmatrix} s_{1} \\ \vdots \\ s_{M} \end{bmatrix}}} & {{Equation}\quad 33} \end{matrix}$

Each of these data stream spread data vectors s _(m) is despread by the corresponding spreading codes, C₁ to C_(Q), to estimate the symbols of that data stream by the despreading device 48. The estimated symbols for each data stream are decoded by the despread data stream decoder 50 to recover the original data d. 

1. A user equipment comprising: a plurality of receiving antennas for receiving signals from a plurality of transmitting antennas at a single site; a plurality of sampling devices for sampling a received version of the received signals as received by each of the plurality of receiving antennas to produce a combined received signal; a channel estimation device for determining a channel response for each receiving and transmitting antenna combination and producing an overall channel response; a MIMO channel equalization device for processing the combined received signal and the overall channel response using a block-Fourier transform based algorithm to produce a spread data vector; and a despreading device for despreading the spread data vector to recover data of the received signals.
 2. The user equipment of claim 1 further comprising a spread vector reordering device for reordering the spread data vector so that chips of transmitted by each transmitting antenna are grouped together.
 3. The user equipment of claim 1 further comprising a despread data stream decoder for decoding data recovered by the despreading device.
 4. The user equipment of claim 1 wherein the MIMO channel equalization device comprises: a block-Fourier transform device for processing a block-column of the overall channel response to produce a diagonal matrix; a block Fourier transform device for processing the combined received signal to take a block-Fourier transform of the combined received signal; and a processing device for using the diagonal matrix and the block-Fourier transform of the combined received signal to produce a Fourier transform of the spread data vector; and an inverse block-Fourier transform device for taking an inverse block Fourier transform of the Fourier transform of the spread data vector.
 5. The user equipment of claim 1 wherein the MIMO channel equalization device comprises: a cross channel correlation determining device for producing a cross channel correlation matrix using the overall channel response; a block-Fourier transform device for processing a block-column of the cross channel correlation matrix to produce a cross correlation diagonal matrix; a block-Fourier transform device for processing a block-column of the overall channel response matrix to produce a channel response diagonal matrix; a block-Fourier transform device for processing the combined received signal to take a block-Fourier transform of the combined received signal; a combining device for combining the channel response diagonal matrix and the block-Fourier transform of the combined received signal to produce a combined result; a processing device for using the cross correlation diagonal matrix and the combined result to produce a Fourier transform of the spread data vector; and a block-inverse Fourier transform device for processing the Fourier transform of the spread data vector to produce the spread data vector.
 6. A method for transferring data in a wireless spread spectrum communication system, the method comprising: providing a plurality of transmitting antennas; encoding data to produce a plurality of data streams for each of the plurality of codes; spreading the plurality of data streams with the plurality of spreading codes; for each transmitting antenna, combining one of the spread data streams of each code together to produce a spread data vector; each transmitting antenna transmitting its spread data vector; receiving the transmitted spread data vectors by each of a plurality of receiving antennas as a received version; and recovering the data using the received versions.
 7. The method of claim 6 wherein the recovering the data uses a fast Fourier transform based algorithm. The method of claim 6 wherein the recovering the data uses a Cholesky decomposition.
 8. The method of claim 6 wherein the recovering the data uses an approximate Cholesky decomposition.
 9. A method for transferring data in a wireless communication system, the method comprising: providing a plurality of transmitting antennas; encoding data to produce a plurality of data streams; for each transmitting antenna, using the data streams to produce a vector for transmission; transmitting each transmission vector by its transmitting antenna through a wireless air interface experiencing multipath; receiving multipath components from each transmitted transmission vector by a plurality of receiving antennas; equalizing the received multipath components to recover the transmission vectors; and recovering data from the recovered transmission vectors. 